home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib16.dsk / BINARY DUMP.bas < prev    next >
BASIC Source File  |  2023-02-26  |  3KB  |  79 lines

  1. 1  REM  **********************
  2. 2  REM  *    BINARY DUMP     *
  3. 3  REM  * BY TIM & TOM DAMON *
  4. 4  REM  * COPYRIGHT (C) 1983 *
  5. 5  REM  * BY MICROSPARC, INC *
  6. 6  REM  * LINCOLN, MA. 01773 *
  7. 7  REM  **********************
  8. 60  HOME 
  9. 70  GOTO 110
  10. 80  PRINT :NM$ =  STR$(X): GOSUB 700
  11. 85  IF  LEN(CH$) <4  THEN CH$ = "0" +CH$: GOTO 85
  12. 87  RETURN 
  13. 90 NM$ =  STR$( PEEK(I)): GOSUB 700: PRINT CH$;" ";: RETURN 
  14. 100  HTAB 20 - LEN(A$)/2 +1: PRINT A$: RETURN 
  15. 110  INVERSE 
  16. 120  HTAB 12: PRINT "******************": HTAB 12: PRINT "*                *": HTAB 12: PRINT "*                *": HTAB 12: PRINT "******************": VTAB 2: REM  16 SPACES IN THE LINES
  17. 130  NORMAL 
  18. 140 A$ = "  BINARY  DUMP  ": GOSUB 100
  19. 150 A$ = "BY TIMOTHY DAMON": GOSUB 100: VTAB 12: PRINT "** COPYRIGHT 1983 BY MICROSPARC, INC. **"
  20. 160  VTAB 23: PRINT "INSTRUCTIONS?": WAIT  -16384,128
  21. 170  GET A$: IF A$ = "N"  THEN 240
  22. 180  HOME : PRINT "THIS PROGRAM WILL DUMP OUT ANY BINARY   PROGRAM IN HEXADECIMAL NUMBERS IN 16    COLUMNS."
  23. 190  VTAB 8
  24. 200  INVERSE :A$ = "HIT ANY KEY TO CONTINUE": GOSUB 100
  25. 210  WAIT  -16384,128
  26. 220  NORMAL 
  27. 230  POKE  -16368,0
  28. 240  HOME : PRINT "ENTER THE STARTING ADDRESS OF THE       PROGRAM IN HEXADECIMAL.": PRINT "IF YOU DON'T KNOW WHAT IT IS THEN TYPE  IN 'END' AND FIND OUT!"
  29. 250 HX$ = "0123456789ABCDEF"
  30. 260  INPUT "ENTER ADDRESS: ";NM$: IF NM$ = ""  THEN 260
  31. 270  IF NM$ = "END"  THEN  TEXT : HOME : END 
  32. 280  GOSUB 610: IF BI = 1  THEN  PRINT  CHR$(7); CHR$(7);"INVALID INPUT":BI = 0: GOTO 260
  33. 290 SD = CH
  34. 300  PRINT : PRINT 
  35. 310  PRINT "NOW ENTER THE LENGTH IN HEXADECIMAL.": PRINT "IF YOU DON'T KNOW THIS THEN TYPE IN     'END' AND FIND OUT!"
  36. 320  INPUT "ENTER LENGTH: ";NM$: IF NM$ = ""  THEN 320
  37. 330  IF NM$ = "END"  THEN  TEXT : HOME : END 
  38. 340  GOSUB 610: IF BI = 1  THEN  PRINT  CHR$(7); CHR$(7);"INVALID INPUT!":BI = 0: GOTO 320
  39. 350 LD = CH -1
  40. 360  PRINT : PRINT 
  41. 370  HOME 
  42. 380  PR# 1:X = SD: GOSUB 80: FOR ZZ = 1 TO  LEN(CH$) +2: PRINT " ";: NEXT : PRINT "0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F"
  43. 390  FOR ZZ = 1 TO  LEN(CH$) +2: PRINT " ";: NEXT : PRINT "-  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -";
  44. 400 I = SD:W = SD -16 * INT(SD/16)
  45. 410  IF W = 0  THEN 470
  46. 420  GOSUB 80:CH$ =  LEFT$(CH$,3) +"0"
  47. 430  PRINT CH$;"- "; SPC( W *3);
  48. 440  FOR I = I TO I +15 -W
  49. 450  GOSUB 90
  50. 460  NEXT I
  51. 470  FOR X = I TO SD +LD  STEP 16
  52. 480  GOSUB 80
  53. 490  PRINT CH$;"- ";
  54. 500  FOR I = X TO X +15
  55. 510  GOSUB 90
  56. 520  IF I = SD +LD  THEN 550
  57. 530  NEXT I
  58. 540  NEXT X
  59. 550  PRINT : PRINT 
  60. 560  PR# 0
  61. 570  PRINT "ANY MORE? (Y/N)";: GET A$
  62. 580  IF A$ = "N"  THEN  TEXT : HOME : END 
  63. 590  CLEAR 
  64. 600  GOTO 240
  65. 610 CH = 0:WK = 0
  66. 620  FOR M =  LEN(NM$) TO 1  STEP  -1
  67. 630  FOR J = 1 TO 16
  68. 640  IF  MID$ (NM$,M,1) =  MID$ (HX$,J,1)  THEN CH = CH +(J -1) *16 ^WK: GOTO 670
  69. 650  NEXT J
  70. 660 BI = 1: RETURN 
  71. 670 WK = WK +1
  72. 680  NEXT M
  73. 690  RETURN 
  74. 700 WK =  VAL(NM$):CH$ = ""
  75. 710 DG = WK - INT(WK/16) *16:WK =  INT(WK/16)
  76. 720 CH$ =  MID$ (HX$,DG +1,1) +CH$
  77. 730  IF WK >0  THEN 710
  78. 740  IF  LEN(CH$) <2  THEN CH$ = "0" +CH$
  79. 750  RETURN